FAME.library History -------------------- V3.1 ---- FAMEPrivate3() crashed with V3.0. Fixed. V3.00 ----- FAMEDosMove() fixed again. If the source file was copied to destination (instead of renaming), the destination file was still write-locked while FAME.library tried to modify file comment & protection bits. Furthermore, FAMEDosMove() now fails if SetComment() or SetProtection() wasn't successful. All changes also affect FAMEPostFile(). New Function: FAMENum64ToStr() (converts 64-bit numbers to decimal Strings). FAMENumToStr() fixed. The opened locale structure wasn't closed again. Replaced all library references to the obsolete ExecBase->ThisTask field by FindTask(NULL) calls. FAME library structure renamed to struct FAMELibrary, FAME_protos.h now includes clib/FAME_protos.h, pragmas/FAME_pragmas.h and libraries/FAME.h itself, so that you only need to include the proto file. FAME.library must still be opened and closed within your source code; the correct definition for FAMEBase in your source is struct FAMELibrary * FAMEBase. Example: -------- #include struct FAMELibrary * FAMEBase; if (struct Library * FAMEBase = OpenLibrary(FAMENAME,MyNeededMinVer)); { CloseLibrary(FAMEBase); } V2.10 ----- FAMEAvailExe() UnLocked obsolete Locks previously used with OpenFromLock(). Result: MungWall hits. Fixed. V2.00 ----- FAMEDosMove() now may also copy files. So FAMEDosMove() is used for both moving and copying. FAMEDosMove() and FAMEPostFile() now may also keep the source file comment and protection bits. Requested by Elgun. FAMEChrCut(), FAMEChrCutCase(), FAMEStrCut(), FAMEStrCutCase(), FAMEStrFil() and FAMESwapRedWhite() now return results (string pointers) instead of nothing (VOID). The library version had to be increased by 1. However, everything stays downward-compatible. FAMEPostFile() is now safe against NULL pointers passed as ULPathList argument. Autodocs: converted all tabs to spaces. V1.10 ------ Fixed another bug with FAMEDosMove(). If a file had to be copied (because renaming not possible across devices), and the destination name was a file name (not a valid directory name to add the source file name to), the source file was not unlocked. The FAMEExecuteDir() autodoc description contained some rubbish at the bottom which i just forgot to delete, or which was accidently inserted. Who knows ? :^) V1.00 (first official public release) ------------------------------------- FAMELoadFilePooled() was named FAMELoadFile() here and there. Fixed. (i just *hate* snapping!) FAMEPostFile() rewritten from scratch. The FPF_NOCHECK flag has been renamed to FPF_REPLACE, because this flag now also causes the library to delete all existing files of that name it finds in any of the given destination directories. Sorry for that change. Fixed a bug in FAMEExecuteDir() (Enforcer hits when passing NULL for Tags). FAMEExecuteDir() now also executes all CLI scripts it finds in the given path (script bit must be set). FAMEFreeDiskSpace() and FAMEGetDevInfoList() optimized a *little* bit. Fixed a bug in FAMEDosMove(). If renaming failed, the second attempt to rename wasn't performed (first attempt w. moving "c:dir" to "ram:test" tries "c:dir" to "ram:test/dir"; second attempt shall try moving "c:dir" to "ram:test", which wasn't done). After some fixes and changes, FAMEPrivate7() was made public and is now named FAMEOverallBytes(). V0.63 ----- Finally, i found the time to test FAMELoadFile() and FAMELoadFilePooled() (yeah, library version is still below 1.0, which means everything may be untested), and fixed another bug where the file's FIB wasn't written to the FAMEFile/FAMEPoolFile structure in some cases. V0.62 ----- New function: FAMELoadFilePooled(). FAMELoadFile() fixed. The whole function didn't work because the FileName argument got lost before accessing the file. Both LoadFile functions now initialize ffil_FH/fpof_HF to NULL if the FLFF_KEEPFH flag isn't set. V0.61 ----- Fixed a last-minute bug with FAMEDeletePool(), which crashed if the pool to be freed had no child pools. Now we have tested the pool functions by some test code which randomly allocated/freed up to 25 mio. randomly sized structures. Looks good now. :^) Added some little things to the pool memory autodocs. Added FAMEUlPathList structure to the public FAME.library includes. V0.6 ---- FAME memory pool functions completely rewritten from scratch. (shiver..) Several things have been changed; refer to the autodocs. However, the pool functions might work now (please test.. 0^) Release Note: ~~~~~~~~~~~~~ If the pool functions have been successfully tested with some Programs, FAME.library V1.0 will be released as freely distributable, public shared library; free to use with any non-commercial program. Also, there will be no need for anybody to become a registered FAME BBS user to use FAME.library with own programs. This includes Alien BBS Systems.. :^() ------------------------------------------------------------------------------ V0.5 ---- Corrected autodoc description for FAMEFileCopy(). Setting SrcSize to -1 will copy the whole file; the autodoc description mischanged SrcSize with MaxMem for this one. FAMEPrivate8() is now a public function named FAMEPostFile(). Refer to the autodoc description for the FAMEUlPathList structure used with this function. The FAMEUlPathList definitions will be added to the FAMEPublicStructs.h/.i include files with the next FAME include update.. Added 10 new object types for FAMEAllocObject(). Now you may allocate the following Objects (structures): No. Name --------------------- 1. FAMEDoorMessage 2. FAMEMailHeader 3. FAMEMailStat 4. FAMEToolPortMsg 5. FAMECoProcessMsg 6. FAMEExternEditor 7. FAMEToolNotifyMsg 8. FAMEExpansion 9. FAMECnfExpansion 10. FAMEUser 11. FAMEUserKeys 12. FAMEUserConf 13. FAMECoProcess 14. FAMEDestNodes 15. FAMEInfoList 16. FAMEOnlineMsg 17. FAMEOLMString All objects come fully initialized now. For Example, FAMEDoorMessage no longer needs initialization of any System fields, like MN_SIZE.